User:Tim Starling/CSS and JS caller survey (r56220)

Quick survey of where CSS and JS comes from and goes to in the core at present, as a design aid for a possible refactor.

Script adders edit

OutputPage edit

  • OutputPage::headElement()
    • common/wikiprintable.css
    • Skin::setupUserCss()
    • Skin::getHeadScripts()
    • OutputPage::buildCssLinks() (from addStyle())
    • OutputPage::getHeadItems()
    • $skin->usercss
    • OutputPage::getScriptLoaderJs() (mwScriptLoader.php?class=blah)
  • OutputPage::output()
    • OutputPage::addCoreScripts2Top()
    • ajax.js
    • AjaxAddScript
    • ajaxwatch.js
    • mwsuggest.js
    • rightclickedit.js
    • ajaxCategories class

OutputPage::addCoreScripts2Top()

    • wikibits.js
    • classes window.jQuery, mv_embed

Skin base classes edit

  • Skin::getHeadScripts()
    • gen=js
    • User:x/skinname.js
    • $out->mScripts
  • Skin::setupUserCss()
    • MediaWiki:Common.css
    • MediaWiki:Print.css
    • MediaWiki:Handheld.css
    • MediaWiki:Skinname.css
    • gen=css
    • CSS preview (via $skin->usercss)
    • User:name/skinname.css
    • OutputPage::getExtStyle()
    • Skin::setupSkinUserCss()
  • Skin::bottomScripts()
    • if (window.runOnloadHook) runOnloadHook();
    • SkinAfterBottomScripts hook
  • Skin::setupSkinUserCss()
    • common/shared.css
    • common/oldshared.css
    • $this->getStylesheet() (common/wikistandard.css)
    • common/common_rtl.css
  • SkinTemplate::outputPage()
    • Skin::setupUserCss()
    • SkinTemplate::setupUserJs()
    • gen=js (to jsvarurl)
    • OutputPage::getScript() (to headscripts)
    • Skin::bottomScripts() (to bottomscripts)
    • SkinTemplate::setupPageCss() (SkinTemplateSetupPageCss hook to pagecss)
  • SkinTemplate::setupUserJs()
    • JS preview
    • User:name/skinname.js
  • SkinTemplate::setupSkinUserJs()
    • NOT CALLED
    • gen=js

Classic three skins edit

  • SkinStandard::getHeadScripts()
    • common/sticky.js
    • Skin::getHeadScripts()
  • SkinStandard::setupSkinUserCss()
    • common/quickbar.css
    • common/quickbar-right.css
    • Skin::setupSkinUserCss()
  • SkinNostalgia::getStylesheet()
    • common/nostalgia.css
  • SkinCologneBlue::getStylesheet()
    • common/cologneblue.css


SkinTemplate derivatives edit

  • SkinMonoBook::setupSkinUserCss()
    • Skin::setupSkinUserCss()
    • monobook/main.css
    • $wgHandheldStyle (chick/main.css)
    • monobook/IE50Fixes.css
    • monobook/IE55Fixes.css
    • monobook/IE60Fixes.css
    • monobook/IE70Fixes.css
    • monobook/rtl.css
    • $skin->pagecss
    • $skin->usercss
  • SkinMonoBook::setupSkinUserJs()
    • NOT CALLED
    • wikibits.js
    • jsvarurl
    • userjs
    • userjsprev
  • MonoBookTemplate::execute()
    • common/IEFixes.js
    • OutputPage::headElement()
    • if (window.isMSIE55) fixalpha();
    • bottomscripts
  • SkinChick::setupSkinUserCss()
    • Skin::setupSkinUserCss()
    • chick/main.css
    • chick/IE50Fixes.css
    • chick/IE55Fixes.css
    • chick/IE60Fixes.css
  • SkinModern::setupSkinUserCss()
    • common/shared.css
    • modern/main.css
    • modern/print.css
    • modern/rtl.css
  • ModernTemplate::execute()
    • common/IEFixes.js
    • OutputPage::headElement()
    • bottomscripts
  • SkinSimple::setupSkinUserCss()
    • simple/main.css
    • simple/rtl.css
  • SkinVector::initPage()
    • vector/main-rtl.css
    • vector/main-ltr.css
    • csshover.htc
    • common/IEFixes.js
  • VectorTemplate::execute()
    • OutputPage::headElement()
    • if ( window.isMSIE55 ) fixalpha();
    • bottomscripts

Non-skin modules edit

  • EditPage
    • edit.js
    • preview.js
    • editPage class
  • HTMLForm
    • htmlform class
  • HistoryPage
    • history.js
  • ImagePage.php
    • metadata.js
  • DifferenceEngine
    • diff.js
  • SpecialPreferences
    • prefs.js
  • SpecialSearch
    • search.js
  • SpecialUpload
    • uploadPage class
    • upload.js
    • edit.js

Script generators edit

  • Skin::generateUserJs()
    • Provides text for gen=js
  • Skin::generateUserStylesheet()
    • Calls Skin::reallyGenerateUserStylesheet()
  • Skin::reallyGenerateUserStylesheet()
  • SkinCologneBlue::reallyGenerateUserStylesheet()
  • SkinSimple::reallyGenerateUserStylesheet()
  • SkinStandard::reallyGenerateUserStylesheet()