From 4fd17eb86244d0e543698fbaba4b87f8f85a5984 Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Mon, 18 Sep 2017 18:49:57 +0100 Subject: [PATCH] resourceloader: Implement isKnownEmpty for user.options module This allows ResourceLoaderClientHtml to output state=ready instead of state=loading with a no-op mw.loader.implement() call being embedded. Test Plan: * View source on page view when logged-out. * Before: - loader.state({"user.options":"loading"}) - loader.implement("user.options@..",function(){ .. user.options.state([]) }) * After: - loader.state({"user.options":"ready"}) Bug: T176159 Change-Id: I18f76eaa960da9b0ca77f28e10f768587447a838 --- .../resourceloader/ResourceLoaderUserOptionsModule.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/includes/resourceloader/ResourceLoaderUserOptionsModule.php b/includes/resourceloader/ResourceLoaderUserOptionsModule.php index 0c332cff8d..a15d310bcd 100644 --- a/includes/resourceloader/ResourceLoaderUserOptionsModule.php +++ b/includes/resourceloader/ResourceLoaderUserOptionsModule.php @@ -64,6 +64,14 @@ class ResourceLoaderUserOptionsModule extends ResourceLoaderModule { return false; } + /** + * @param ResourceLoaderContext $context + * @return bool + */ + public function isKnownEmpty( ResourceLoaderContext $context ) { + return !$context->getUserObj()->getOptions( User::GETOPTIONS_EXCLUDE_DEFAULTS ); + } + /** * @return string */ -- 2.20.1