diff --git a/core/Tracker/IgnoreCookie.php b/core/Tracker/IgnoreCookie.php index 4e28a3161d2c042f4a345b4765ca1024cc67da31..83c62d00a353463dd8aa3d1c49701fca2f4a8b9d 100644 --- a/core/Tracker/IgnoreCookie.php +++ b/core/Tracker/IgnoreCookie.php @@ -22,7 +22,7 @@ class IgnoreCookie * * @return Cookie */ - public static function getTrackingCookie() + private static function getTrackingCookie() { $cookie_name = @Config::getInstance()->Tracker['cookie_name']; $cookie_path = @Config::getInstance()->Tracker['cookie_path']; @@ -30,6 +30,14 @@ class IgnoreCookie return new Cookie($cookie_name, null, $cookie_path); } + public static function deleteThirdPartyCookieUIDIfExists() + { + $trackingCookie = self::getTrackingCookie(); + if ($trackingCookie->isCookieFound()) { + $trackingCookie->delete(); + } + } + /** * Get ignore (visit) cookie * @@ -54,10 +62,9 @@ class IgnoreCookie } else { $ignoreCookie->set('ignore', '*'); $ignoreCookie->save(); - - $trackingCookie = self::getTrackingCookie(); - $trackingCookie->delete(); } + + self::deleteThirdPartyCookieUIDIfExists(); } /** diff --git a/core/Tracker/Request.php b/core/Tracker/Request.php index b6f316304652830a49b280e196ba5c0e361376c9..dd594b997488a47dd91c1be66302729aaca66604 100644 --- a/core/Tracker/Request.php +++ b/core/Tracker/Request.php @@ -614,13 +614,13 @@ class Request Common::printDebug("We manage the cookie..."); - $cookie = $this->makeThirdPartyCookie(); + $cookie = $this->makeThirdPartyCookieUID(); // idcookie has been generated in handleNewVisit or we simply propagate the old value $cookie->set(0, bin2hex($idVisitor)); $cookie->save(); } - protected function makeThirdPartyCookie() + protected function makeThirdPartyCookieUID() { $cookie = new Cookie( $this->getCookieName(), @@ -684,7 +684,7 @@ class Request // - By default, reads the first party cookie ID $useThirdPartyCookie = $this->shouldUseThirdPartyCookie(); if ($useThirdPartyCookie) { - $cookie = $this->makeThirdPartyCookie(); + $cookie = $this->makeThirdPartyCookieUID(); $idVisitor = $cookie->get(0); if ($idVisitor !== false && strlen($idVisitor) == Tracker::LENGTH_HEX_ID_STRING diff --git a/plugins/PrivacyManager/DoNotTrackHeaderChecker.php b/plugins/PrivacyManager/DoNotTrackHeaderChecker.php index 108ec45748d41f6e65a84ba337b8b69708fa03d8..c8c6f9df9b7c44b6582bf3609bd3ff142b15dfb1 100644 --- a/plugins/PrivacyManager/DoNotTrackHeaderChecker.php +++ b/plugins/PrivacyManager/DoNotTrackHeaderChecker.php @@ -44,8 +44,7 @@ class DoNotTrackHeaderChecker if($exclude) { - $trackingCookie = IgnoreCookie::getTrackingCookie(); - $trackingCookie->delete(); + IgnoreCookie::deleteThirdPartyCookieUIDIfExists(); // this is an optional supplement to the site's tracking status resource at: // /.well-known/dnt diff --git a/tests/PHPUnit/Unit/Tracker/RequestTest.php b/tests/PHPUnit/Unit/Tracker/RequestTest.php index 7eb38059a26b394a7357837d889b83b2fc6407e8..e3964369ffbfc76a930df0ec3ff87d5f9f8f2f1e 100644 --- a/tests/PHPUnit/Unit/Tracker/RequestTest.php +++ b/tests/PHPUnit/Unit/Tracker/RequestTest.php @@ -451,14 +451,14 @@ class RequestTest extends UnitTestCase public function test_makeThirdPartyCookie_ShouldReturnAnInstanceOfCookie() { - $cookie = $this->request->makeThirdPartyCookie(); + $cookie = $this->request->makeThirdPartyCookieUID(); $this->assertTrue($cookie instanceof Cookie); } public function test_makeThirdPartyCookie_ShouldPreconfigureTheCookieInstance() { - $cookie = $this->request->makeThirdPartyCookie(); + $cookie = $this->request->makeThirdPartyCookieUID(); $this->assertCookieContains('COOKIE _pk_uid', $cookie); $this->assertCookieContains('expire: 1450750817', $cookie); @@ -595,9 +595,9 @@ class TestRequest extends Request return parent::getCookiePath(); } - public function makeThirdPartyCookie() + public function makeThirdPartyCookieUID() { - return parent::makeThirdPartyCookie(); + return parent::makeThirdPartyCookieUID(); } public function setIsAuthenticated()