Page MenuHomePhabricator

Remove the MobileView API
Open, MediumPublic

Description

NOTE: Removing this is blocked on T43716, T236733, and T236731

The MobileView API was originally made for apps. Now that the Page Content Service is being used by the apps, MobileView's value is questionable given its maintenance cost.

It has been marked as deprecated in T210808. Of course deprecating should be done carefully - there may be other consumers of this API, but we should explore who they are and how we can get them using MCS.

Note: The MobileFormatter will continue to exist for MediaWiki mobile web views. The MobileView API actually has a lot of logic that is not shared by the MobileFormatter.

Problems with the API

  • Older versions of the apps use it for main page
  • Uses an API parameter names inconsistent with action=parse
  • Has a mainpage parameter that doesn't do anything.
  • Nobody is maintaining it any more.

Timeline

As of June 2020, neither of the current app releases (iOS 6.6 and Android 2.7.50320) relies on MobileView directly. They are using the Page Content Service. Prior to these releases, the Android app was using the Mobile Content Service and the iOS app was using MobileView. Enough users will have to upgrade to Wikipedia for iOS 6.6 or newer before MobileView can be removed (T236731).

The other element blocking removal of MobileView is incomplete language variant support in Parsoid (T43716). The Page Content Service uses Parsoid for most wikis but needs to use the MobileView API for Chinese Wikipedia. Once T43716 is completed, the Page Content Service will need to be updated to remove dependence on MobileView for zhwiki (T43716).

Related Objects

StatusSubtypeAssignedTask
Openovasileva
DeclinedNone
Opencscott
OpenNone
OpenNone
Invalid GWicke
Resolvedliangent
Resolvedthiemowmde
OpenNone
Resolvedcscott
Resolvedcscott
ResolvedElitre
Resolvedcscott
Resolvedcscott
Resolvedcscott
Resolvedcscott
Resolvedcscott
OpenNone
Resolvedcscott
OpenNone
OpenNone
OpenNone
OpenNone
DeclinedNone
ResolvedJdlrobson
ResolvedJdlrobson
DuplicateNone
DuplicateNone
ResolvedTgr
ResolvedAnomie
Resolvedtstarling
Resolvedcoren
ResolvedAnomie
OpenBUG REPORTNone
ResolvedAnomie
ResolvedEsanders
ResolvedEsanders
Resolvedssastry
ResolvedAnomie
ResolvedCKoerner_WMF
Resolvedjhsoby
ResolvedTgr
DeclinedTgr
Resolvedcoren
ResolvedAnomie
ResolvedTgr
DeclinedNone
Resolvedssastry
ResolvedTgr
ResolvedTgr
ResolvedTgr
ResolvedDeskana
ResolvedCKoerner_WMF
ResolvedWhatamidoing-WMF
ResolvedTgr
ResolvedTgr
ResolvedTgr
ResolvedUrbanecm
ResolvedTgr
ResolvedTacsipacsi
ResolvedTgr
ResolvedCKoerner_WMF
ResolvedJdlrobson
DeclinedNone
DeclinedNone
OpenNone
ResolvedAmmarpad
ResolvedJdlrobson
ResolvedKizule
ResolvedKizule
DuplicateBrandonXLF
ResolvedJdlrobson
ResolvedAmmarpad
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedJdlrobson

Event Timeline

The Android app still uses the mobileview API for certain classes of page requests, most notably for zhwiki page requests because language variant support is still lacking in the Parsoid/RB stack (T43716: [EPIC] Support language variant conversion in Parsoid, T159985: Implement language variant support in the REST API).

AFAIK the iOS app still uses the mobileview API for all page loads. If there's a plan to transition the iOS app to MCS page loads, I'm not aware of it. (Ping @JoeWalsh: any updates on this front?)

I guess it's still appropriate to formally deprecate this, just wanted to point out that it's still very much in use.

@Mholloway updating to MCS is on our radar (and we've done some of the initial legwork) but so far not on any roadmap. We could change that though if it's imperative to switch. CC @Mhurd @JMinor

Definitely. To be clear we are just thinking about this at the moment. There are no plans to remove it completely yet but we are thinking we might want to discourage its use. T43716 would be a blocker for doing that.

@Jdlrobson MCS is currently using action=mobileview for the main pages since the content of the main page content is not responsive. Hoping for T138622#3416133 to get done. Then we could get rid of the special handling there.

Jdlrobson triaged this task as Medium priority.Jul 10 2018, 9:37 PM

The PageGateway uses the mobileview api to get and allow lazy loaded references and to get pages. How could this work without the MobileView API? Can it work? What are alternative options?

One alternative could be the references endpoint in PCS. The drawback for the web is probably that it requires RESTBase, though.

Jdlrobson updated the task description. (Show Details)
Jdlrobson renamed this task from [EPIC] Deprecate the MobileView API to Remove the MobileView API.Dec 19 2019, 4:09 PM
Jdlrobson changed the task status from Open to Stalled.
Jdlrobson updated the task description. (Show Details)
Jdlrobson moved this task from Inbox to Doing on the User-Jdlrobson board.
Jdlrobson moved this task from Doing to Next up on the User-Jdlrobson board.

Current rate is 14 hits per second. I'd really like us to talk to the iOS team about getting rid of this code sometime this year cc @ovasileva @LGoto as it's a big chunk of code we can throw out and no longer worry about.

From a personal perspective, it's causing me anxiety as one of the two members of the team that actually review the code comfortably.

Jdlrobson changed the task status from Stalled to Open.Mar 8 2021, 11:58 PM