Page MenuHomePhabricator

problems in getting all dependencies for mobile
Open, Needs TriagePublic

Description

I would like to get the list of all js and css modules dependencies for mobile display.

I can't find a way to get the exhaustive list and, in wikipedia, some style are inserted inside multiples <style> tag in the <head> which I can't find where they come from.

Event Timeline

This is fragmented between the 3 platforms (mobile web, android, iOS) currently.

We are developing plans for an RFC this quarter to unify the platforms on Parsoid output and colocate CSS/JS server side. Until this is completed, the Android app has the best coverage of styling of Parsoid based output:
https://github.com/wikimedia/apps-android-wikipedia

@Niedzielski is a great resource for walking you through the current js and css situation

Additionally, it should be noted that the html used by the Android app originates from Parsoid but is further transformed and delivered from the Mobile Content Service:

https://en.wikipedia.org/api/rest_v1/#!/Mobile/get_page_mobile_sections_title_revision

At a high level, my understanding for Android is that:

  • HTML is delivered by either RESTBase (backed by the Content Service which is backed by Parsoid) or MobileFrontend extension (backed by MediaWiki)
  • CSS is bundled statically from Parsoid, Parsoid Cite extension, MobileApp extension, MobileFrontend extension, wikimedia-page-library, and Wikipedia for Android itself. Some inline styles also come dynamically with the HTML and others are added dynamically by transforms in wikimedia-page-library and Wikipedia for Android.
  • JavaScript is bundled statically from wikimedia-page-library and Wikipedia for Android itself.

iOS is similar except it pulls from Wikipedia for iOS not Android and doesn't support RESTBase / the Content Service for pages. If you have specific questions, I can dig into more detail. I'm unsure of your goal but T107042 may be related.