mozilla-mobile / firefox-ios

Firefox for iOS
Mozilla Public License 2.0
12.14k stars 2.91k forks source link

Investigate options to update fav icons #21243

Open data-sync-user opened 1 month ago

data-sync-user commented 1 month ago

Options to update fav icons:

  1. Create a script that will convert the output of the tippy-top tool linked above to fit the format/schema of the data we ingest for top sites.
  2. Refactor our code to be able to ingest the data directly from tippy top.
  3. There has been mumblings for a while about moving this stuff into remote settings. Wait until this is done and integrate with that service instead.

┆Issue is synchronized with this Jira Spike

data-sync-user commented 1 month ago

➤ ih-codes commented:

Alexa Top Sites is DeprecatedFYI, the preexisting tippy-top-sites ( https://github.com/mozilla/tippy-top-sites ) tool uses the deprecated Alexa Top Sites .zip link.

This GitHub mentions some alternative services for getting this data: https://github.com/PeterDaveHello/top-1m-domains?tab=readme-ov-file ( https://github.com/PeterDaveHello/top-1m-domains?tab=readme-ov-file|smart-link )

It looks as if the Cisco Umbrella format is identical and works with the script. The data returned is in this format:

{ "image_url": "https://m.youtube.com/static/apple-touch-icon-180x180-precomposed.png", "domains": [ "youtube.com", "www.youtube.com" ] }The schema consumed by the app is this:

{ "title": "youtube", "url": "https://www.youtube.com/", "image_url": "youtube-com.png", "background_color": "#db4338", "domain": "youtube.com" }Another consideration is how to handle the multi-domains output from tippy-top-sites.

The code will need to be updated to directly consume the format from tippy-top-sites.

Updating Embedded ImagesWe may not want to embed images anymore in the app though and just allow them to be fetched remotely and cached. Those are fast requests as compared to getting the top sites data.

However, if we do want to embed, it appears that the tippy-top-sites script does not pull down the actual favicon image files to embed in the app. We need to write a scraper script to pull down the images we want to embed in the app. Existing embedded assets can be found in the /firefox-ios/Client/Assets/TopSites folder.

Remote Settings WorkOrla Mitchell confirmed that there is currently no active work going on right now to solve this problem.

data-sync-user commented 1 month ago

➤ ih-codes commented:

Norberto Andres Furlan

Orla Mitchell and I have discussed what we think is the best path forward for this. Overall, we thought that continuing to use tippy-top-sites and/or leveraging remote settings is overkill for what we need to actually do (improve first launch experience).

Right now the code isn’t working quite as we all assumed it was. Even on first launch, a network request is being sent to each of the default top sites, which is slow and causes latency in the icons populating on the homepage.

So the current goals are now:

I am looking to start this work next week.

Norberto Andres Furlan Do we need to breakdown this work into additional tasks? Should I just make tasks as I need them while working on this and put it under https://mozilla-hub.atlassian.net/browse/FXIOS-9644 ( https://mozilla-hub.atlassian.net/browse/FXIOS-9644|smart-link ) ? Thanks!