diff options
author | Julius Härtl <jus@bitgrid.net> | 2024-02-07 12:51:50 +0100 |
---|---|---|
committer | Julius Härtl <jus@bitgrid.net> | 2024-06-25 17:39:59 +0200 |
commit | ecfbcc66d5322ac0020732690117ac8c3dad45ac (patch) | |
tree | fa7712cf54f97764b87695266de709fcca04d7c9 | |
parent | 61213253104cd5719c1ed9fa74935ea6be5b6719 (diff) | |
download | nextcloud-server-feat/log-large-assets.tar.gz nextcloud-server-feat/log-large-assets.zip |
feat: Log large assets that are initially loaded on the frontendfeat/log-large-assets
Signed-off-by: Julius Härtl <jus@bitgrid.net>
-rwxr-xr-x | lib/private/Template/ResourceLocator.php | 7 | ||||
-rw-r--r-- | tests/lib/Template/ResourceLocatorTest.php | 9 |
2 files changed, 14 insertions, 2 deletions
diff --git a/lib/private/Template/ResourceLocator.php b/lib/private/Template/ResourceLocator.php index 377f0e0b6a8..df085776068 100755 --- a/lib/private/Template/ResourceLocator.php +++ b/lib/private/Template/ResourceLocator.php @@ -7,6 +7,7 @@ */ namespace OC\Template; +use OC\SystemConfig; use Psr\Log\LoggerInterface; abstract class ResourceLocator { @@ -20,6 +21,8 @@ abstract class ResourceLocator { protected LoggerInterface $logger; + private const LOG_LARGE_ASSET_OFFSET = 1024 * 1024; + public function __construct(LoggerInterface $logger) { $this->logger = $logger; $this->mapping = [ @@ -76,6 +79,10 @@ abstract class ResourceLocator { */ protected function appendIfExist($root, $file, $webRoot = null) { if ($root !== false && is_file($root.'/'.$file)) { + $systemConfig = \OCP\Server::get(SystemConfig::class); + if ($systemConfig->getValue('debug', false) && filesize($root.'/'.$file) > self::LOG_LARGE_ASSET_OFFSET) { + $this->logger->debug("$root/$file is larger then 1MB, consider reducing the size for javascript entrypoints"); + } $this->append($root, $file, $webRoot, false); return true; } diff --git a/tests/lib/Template/ResourceLocatorTest.php b/tests/lib/Template/ResourceLocatorTest.php index e74e72014c5..d549c50c959 100644 --- a/tests/lib/Template/ResourceLocatorTest.php +++ b/tests/lib/Template/ResourceLocatorTest.php @@ -29,8 +29,13 @@ class ResourceLocatorTest extends \Test\TestCase { $systemConfig ->expects($this->any()) ->method('getValue') - ->with('theme', '') - ->willReturn($theme); + ->willReturnCallback(function ($key, $default = null) use ($theme) { + if ($key === 'theme') { + return $theme; + } + + return $default; + }); $this->overwriteService(SystemConfig::class, $systemConfig); return $this->getMockForAbstractClass('OC\Template\ResourceLocator', [$this->logger], |