Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/private/AppConfig.php10
-rw-r--r--lib/private/Server.php3
-rw-r--r--lib/private/Template/SCSSCacher.php8
-rw-r--r--tests/lib/Template/CSSResourceLocatorTest.php7
-rw-r--r--tests/lib/Template/SCSSCacherTest.php8
5 files changed, 32 insertions, 4 deletions
diff --git a/lib/private/AppConfig.php b/lib/private/AppConfig.php
index e562870aa7f..1d4a9a5614b 100644
--- a/lib/private/AppConfig.php
+++ b/lib/private/AppConfig.php
@@ -342,4 +342,14 @@ class AppConfig implements IAppConfig {
$this->configLoaded = true;
}
+
+ /**
+ * Clear all the cached app config values
+ *
+ * WARNING: do not use this - this is only for usage with the SCSSCacher to
+ * clear the memory cache of the app config
+ */
+ public function clearCachedConfig() {
+ $this->configLoaded = false;
+ }
}
diff --git a/lib/private/Server.php b/lib/private/Server.php
index 400389177e4..928ce118c32 100644
--- a/lib/private/Server.php
+++ b/lib/private/Server.php
@@ -1096,7 +1096,8 @@ class Server extends ServerContainer implements IServerContainer {
\OC::$SERVERROOT,
$this->getMemCacheFactory(),
$c->query(IconsCacher::class),
- new TimeFactory()
+ new TimeFactory(),
+ $c->query(AppConfig::class)
);
});
$this->registerService(JSCombiner::class, function (Server $c) {
diff --git a/lib/private/Template/SCSSCacher.php b/lib/private/Template/SCSSCacher.php
index 9be8cb7b59d..a6c371fb715 100644
--- a/lib/private/Template/SCSSCacher.php
+++ b/lib/private/Template/SCSSCacher.php
@@ -33,6 +33,7 @@ use Leafo\ScssPhp\Compiler;
use Leafo\ScssPhp\Exception\ParserException;
use Leafo\ScssPhp\Formatter\Crunched;
use Leafo\ScssPhp\Formatter\Expanded;
+use OC\AppConfig;
use OC\Files\AppData\Factory;
use OC\Memcache\NullCache;
use OC\Template\IconsCacher;
@@ -89,6 +90,8 @@ class SCSSCacher {
/** @var IMemcache */
private $lockingCache;
+ /** @var AppConfig */
+ private $appConfig;
/**
* @param ILogger $logger
@@ -109,7 +112,8 @@ class SCSSCacher {
$serverRoot,
ICacheFactory $cacheFactory,
IconsCacher $iconsCacher,
- ITimeFactory $timeFactory) {
+ ITimeFactory $timeFactory,
+ AppConfig $appConfig) {
$this->logger = $logger;
$this->appData = $appDataFactory->get('css');
$this->urlGenerator = $urlGenerator;
@@ -126,6 +130,7 @@ class SCSSCacher {
$this->lockingCache = $lockingCache;
$this->iconsCacher = $iconsCacher;
$this->timeFactory = $timeFactory;
+ $this->appConfig = $appConfig;
}
/**
@@ -166,6 +171,7 @@ class SCSSCacher {
$retry = 0;
sleep(1);
while ($retry < 10) {
+ $this->appConfig->clearCachedConfig();
$this->logger->debug('SCSSCacher::process check in while loop follows', ['app' => 'scss_cacher']);
if (!$this->variablesChanged() && $this->isCached($fileNameCSS, $app)) {
// Inject icons vars css if any
diff --git a/tests/lib/Template/CSSResourceLocatorTest.php b/tests/lib/Template/CSSResourceLocatorTest.php
index 47f3347bb6f..c89ebfe70fc 100644
--- a/tests/lib/Template/CSSResourceLocatorTest.php
+++ b/tests/lib/Template/CSSResourceLocatorTest.php
@@ -23,6 +23,7 @@
namespace Test\Template;
+use OC\AppConfig;
use OC\Files\AppData\AppData;
use OC\Files\AppData\Factory;
use OC\Template\CSSResourceLocator;
@@ -53,6 +54,8 @@ class CSSResourceLocatorTest extends \Test\TestCase {
protected $iconsCacher;
/** @var ITimeFactory|\PHPUnit_Framework_MockObject_MockObject */
private $timeFactory;
+ /** @var AppConfig|\PHPUnit\Framework\MockObject\MockObject */
+ private $appConfig;
protected function setUp(): void {
parent::setUp();
@@ -65,6 +68,7 @@ class CSSResourceLocatorTest extends \Test\TestCase {
$this->themingDefaults = $this->createMock(ThemingDefaults::class);
$this->iconsCacher = $this->createMock(IconsCacher::class);
$this->timeFactory = $this->createMock(ITimeFactory::class);
+ $this->appConfig = $this->createMock(AppConfig::class);
}
private function cssResourceLocator() {
@@ -80,7 +84,8 @@ class CSSResourceLocatorTest extends \Test\TestCase {
\OC::$SERVERROOT,
$this->cacheFactory,
$this->iconsCacher,
- $this->timeFactory
+ $this->timeFactory,
+ $this->appConfig
);
return new CSSResourceLocator(
$this->logger,
diff --git a/tests/lib/Template/SCSSCacherTest.php b/tests/lib/Template/SCSSCacherTest.php
index 6f9fdf1e7fb..58941b8fdcc 100644
--- a/tests/lib/Template/SCSSCacherTest.php
+++ b/tests/lib/Template/SCSSCacherTest.php
@@ -23,6 +23,7 @@
namespace Test\Template;
+use OC\AppConfig;
use OC\Files\AppData\AppData;
use OC\Files\AppData\Factory;
use OC\Template\IconsCacher;
@@ -61,6 +62,8 @@ class SCSSCacherTest extends \Test\TestCase {
protected $iconsCacher;
/** @var ITimeFactory|\PHPUnit_Framework_MockObject_MockObject */
protected $timeFactory;
+ /** @var AppConfig|\PHPUnit\Framework\MockObject\MockObject */
+ protected $appConfig;
protected function setUp(): void {
parent::setUp();
@@ -93,6 +96,8 @@ class SCSSCacherTest extends \Test\TestCase {
->method('getCachedCSS')
->willReturn($iconsFile);
+ $this->appConfig = $this->createMock(AppConfig::class);
+
$this->scssCacher = new SCSSCacher(
$this->logger,
$factory,
@@ -102,7 +107,8 @@ class SCSSCacherTest extends \Test\TestCase {
\OC::$SERVERROOT,
$this->cacheFactory,
$this->iconsCacher,
- $this->timeFactory
+ $this->timeFactory,
+ $this->appConfig
);
}